# ifndef _RPC_CLIENT_H
# define _RPC_CLIENT_H

#include "RpcMessage.h"


namespace Rpc
{
    template <typename Impl, typename callBack>
    class RpcClient
    {
        public:
            RpcClient(std::shard_ptr<Impl> impl);
            void asyncConnect(const std::string address, const uint16_port);
            void asyncSendMsg(std::shared_ptr<Message>);
            void setCallBack(std::shared_ptr<callBack> callBack);
        private:
            std::shared_ptr<Impl> impl_;
    };

};


#endif // _RPC_CLIENT_H